package co.sumset.conexion;

import java.util.ArrayList;

import co.sumset.dao.DAOContenedor;
import co.sumset.entidades.Usuario;
import co.sumset.interfaces.InterfaceDAOContenedor;
import co.sumset.interfaces.InterfazDAOUsuario;

/**
 * Clase encargada de la administracion del Interface del DAOUsuario.
 * 
 * @author Cristian Raul Pineda Rodriguez.
 *
 */
public class ConexionUsuario {

	private InterfaceDAOContenedor contenedor;// Administra los Interfaces de los DAO's

	/**
	 * Metodo Constructor. Inicializa El contendor de Interfaces de los DAO's
	 */
	public ConexionUsuario() {
		super();
		contenedor = new DAOContenedor();
	}

	/**
	 * Metodo que permite comunicar al DAOUsuario para crear Usuarios.
	 * 
	 * @param usuario
	 * @return
	 * @throws Exception
	 */
	public boolean crearUsuario(Usuario usuario) throws Exception
	{
		InterfazDAOUsuario daoUsuario=contenedor.crearDAOUsuario();
		daoUsuario.crearUsuario(usuario);
		return true;
	}
	
	/**
	 * Metodo que permite comunicar al DAOUsuario para listar los usuarios.
	 * 
	 * @return
	 * @throws Exception
	 */
	public ArrayList<Usuario> listarUsuarios() throws Exception 
	{
		InterfazDAOUsuario daoUsuario=contenedor.crearDAOUsuario();
		return daoUsuario.listarUsuarios();
	}

	/**
	 * Metodo que permite buscar un usuario por codigo.
	 * 
	 * @param codigo
	 * @return
	 * @throws Exception
	 */
	public Usuario buscarPorCodigo(String codigo) throws Exception 
	{
		InterfazDAOUsuario daoUsuario=contenedor.crearDAOUsuario();
		return daoUsuario.buscarPorClave(codigo);		
	}

	/**
	 * Metodo que permite busca un usuario por correo.
	 * @param correo
	 * @return
	 * @throws Exception
	 */
	public Usuario buscarPorCorreo(String correo) throws Exception 
	{
		InterfazDAOUsuario daoUsuario=contenedor.crearDAOUsuario();
		return daoUsuario.buscarPorCorreo(correo);
	}
}
